Clustering of computer systems is becoming an increasingly popular way for enterprises and large businesses to ensure greater availability to multiple users. Different types of clusters have evolved, including high availability (HA) clusters, high performance clusters, load balanced clusters, and the like. Example of clustering systems include the Veritas™ Cluster Server, HP Serviceguard, and/or Microsoft Cluster Server. High Availability clusters are a class of tightly coupled distributed systems that provide high availability for applications typically by using hardware redundancy to recover from single points of failure. HA clusters typically include multiple nodes that interact with each other to provide users with various applications and system resources as a single entity. Each node typically runs a local operating system kernel.
In the event of a hardware or software failure, the HA cluster automatically restarts applications on the same node or “fails over” (e.g., restarts applications on a different node) the applications in order to keep applications available to clients of the cluster. Conventionally, the cluster software is responsible for starting/restarting applications on one or more nodes of the cluster.
Individual software components on the HA cluster are configured as resources or services. A resource or service might be any component that is capable of readily being relocated from one node to another node. Typical examples of resources or services include disk volumes, network addresses, software processes, or the like. A group of resources or services that run together on the same node is known as a resource group or service group.
Often a resource or service might require the services of another resource or service. For example, a software application might require a disk volume. Such dependencies typically have been managed in an ad-hoc method, and such management might not be able to provide fine-grained control over dependencies between resources or services. It is with respect to this consideration and others that the current invention is directed.